#include "iniciosesion.h"
#include "ui_iniciosesion.h"
#include <QSqlQuery>
InicioSesion::InicioSesion(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::InicioSesion)
{
    ui->setupUi(this);
    InicioSesion::usua = new Usuario();
    usua= NULL;


    QDjangoQuerySet<Sucursal> sucursales;
    if (sucursales.count() != 0)
    {
        foreach (const Sucursal &suc, sucursales)
        {
            ui->sucursalComboBox->addItem(suc.getNombre_sucursal());
        }
    }
}

InicioSesion::~InicioSesion()
{
    delete ui;
    delete usua;

}

void InicioSesion::on_aceptarPushButton_clicked()
{

    QSqlQuery query;
    QString usuario = ui->usuarioLineEdit->text().toLower();
    QString contrasenha = ui->contrasenhaLineEdit->text().toLower().simplified();
    query.prepare("select * from usuario where LOWER(nick) = :usuario and LOWER(password) = :contrasenha and estado = 'activo'");
    query.bindValue(":usuario", usuario);
    query.bindValue(":contrasenha", contrasenha);

    query.exec();

    if (query.size() == 0)
    {
        QMessageBox m;
        m.setText("Usuario y/o Contraseña no válidos");
        m.setInformativeText("Verifique su usuario y/o contraseña.");
        m.setIcon(QMessageBox::Information);
        m.exec();
    }

    while (query.next())
    {
        usua = new Usuario();
        this->usua->setId_usuario(query.value(0).toInt());
        this->usua->setCedula(query.value(1).toInt());
        this->usua->setNombre(query.value(2).toString());
        this->usua->setApellido(query.value(3).toString());
        this->usua->setCargo(query.value(4).toString());
        this->usua->setDireccion(query.value(5).toString());
        this->usua->setTelefono(query.value(6).toString());
        this->usua->setCorreo(query.value(7).toString());
        this->usua->setNick(query.value(8).toString());
        this->usua->setPassword(query.value(9).toString());
        this->usua->setPassword_temporal(query.value(10).toBool());

        QDjangoQuerySet<Sucursal> sucursales;

        if (sucursales.count() != 0)
        {
          usua->sucursal = sucursales.filter(QDjangoWhere("nombre_sucursal", QDjangoWhere::Equals, ui->sucursalComboBox->currentText())).at(0);

        }

        QDjangoQuerySet<Departamento> departamentos;
        if(departamentos.count() != 0)
        {
            departamentos = departamentos.filter(QDjangoWhere("id_departamento", QDjangoWhere::Equals, query.value(11)));
            Departamento *departamento;
            departamento = departamentos.at(0);
            this->usua->setDepartamento(departamento);
        }

        // Si la contraseña es temporal
        if (this->usua->getPassword_temporal())
        {
            CambioContrasenha *cambioCon = new CambioContrasenha(this, usua);
            cambioCon->exec();
            ui->contrasenhaLineEdit->setText("");
            delete cambioCon;
        }
        else
        {
            this->close();
        }
    }
}

void InicioSesion::on_cancelarPushButton_clicked()
{
    usua= NULL;
    this->close();
}
